# 该image文件继承官方的node image
FROM node:19-alpine3.15 as base

# 将当前目录下的所有文件（除了.dockerignore文件排除的路径），都将拷贝进image文件的/app目录
COPY . /app
# 指定项目的工作目录
WORKDIR /app
EXPOSE 3000

# 生产环境
FROM base as production
ENV NODE_ENV=production
# 使用pm2管理
RUN npm install pm2 -g
# 仅安装生产环境依赖
RUN npm ci
CMD [ "npm", "start" ]

# 开发环境
FROM base as dev
ENV NODE_ENV=development
# 在/app目录下，运行npm install 安装依赖，注意，安装所有的依赖都将打包进image文件
RUN npm install
CMD [ "npm", "dev" ]
